/*
 Rilego - An easy Images 2 E-Book converter.
Copyright (C) 2011  Federico Improta (Kirys)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
*/

package it.kirys.rilego.gui.filtersmanager.setters;

import it.kirys.rilego.engine.processors.imagefilters.BrightessContrastFilter;
import it.kirys.rilego.gui.filtersmanager.nodesmanaging.BooleanLeafEditor;
import it.kirys.rilego.gui.filtersmanager.nodesmanaging.SliderLeafEditor;
import it.kirys.rilego.gui.filtersmanager.setters.prefs.IFilterPref;
import javax.swing.JComponent;

/**
 *
 ** @author Federico Improta
 */
public class ContrastEnhancerSetter extends AbstractFilterSetter<BrightessContrastFilter> {
	String label;

	@Override
	public String getLabel() {
		return label;
	}
	
	private void initSetters(){
		final ContrastEnhancerSetter set=  this;
		final BrightessContrastFilter filter = (BrightessContrastFilter)this.getFilter();

	//Brightness setter
		this.add(new IFilterPref<Integer>() {

			SliderLeafEditor slider = new SliderLeafEditor(BrightessContrastFilter.MIN_BRIGHTNESS,BrightessContrastFilter.MAX_BRIGHTNESS,0);
			@Override
			public IFilterSetter getSetter() {
				return set;
			}

			@Override
			public Integer getValue() {
				return new Integer(filter.getBrightness());
			}

			@Override
			public void setValue(Integer value) {
				filter.setBrightness(value.intValue());
			}

			@Override
			public Class<Integer> getPrefType() {
				return Integer.class;
			}

			@Override
			public JComponent getEditor() {
				return slider;
			}

			@Override
			public String getLabel() {
				return "Brightness";
			}
		});

		//Contrast setter
		this.add(new IFilterPref<Integer>() {

			SliderLeafEditor slider = new SliderLeafEditor(BrightessContrastFilter.MIN_CONTRAST,BrightessContrastFilter.MAX_CONTRAST,0);
			@Override
			public IFilterSetter getSetter() {
				return set;
			}

			@Override
			public Integer getValue() {
				return new Integer(filter.getContrast());
			}

			@Override
			public void setValue(Integer value) {
				filter.setContrast(value.intValue());
			}

			@Override
			public Class<Integer> getPrefType() {
				return Integer.class;
			}

			@Override
			public JComponent getEditor() {
				return slider;
			}

			@Override
			public String getLabel() {
				return "Contrast";
			}
		});
	
	}


	public ContrastEnhancerSetter(BrightessContrastFilter filter,String label) {
		super(filter);
		this.label=label;
		initSetters();
	}



}
